package com.sg.dto.biz.app.res;

import com.sg.dto.biz.app.common.AccountSubjectDto;
import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @desc ImplementToBeReportedTaskStandardDataAndTipsComRespDto
 * @使用场景
 */
@Data
public class ImplementToBeReportedTaskStandardDataAndTipsComRespDto
        extends BaseDto
        implements Serializable {

    /**
     * 汇报进度值元素
     */
    @ApiModelProperty("汇报进度值元素")
    private Long progressValueElement;

    /**
     * 实际值元素
     */
    @ApiModelProperty("汇报实际值元素")
    private Long actualValueElement;

    /**
     * 汇报预算元素
     */
    @ApiModelProperty("汇报预算元素")
    private Long budgetAmountElement;

    /**
     * 提交标准数据提示文案
     */
    @ApiModelProperty("提交标准数据提示文案")
    private String submitStandardDataTips;

    /**
     * 展示目标值
     */
    @ApiModelProperty("展示目标值")
    private Double showTargetValue;

    /**
     * 冗余单位
     */
    @ApiModelProperty("展示目标值单位")
    private String unit;

    /**
     * 评价模板商业参数
     */
    @ApiModelProperty("评价模板商业参数")
    private String schemeDataPara;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 冗余是否左侧比例型 TRUE:是 FALSE:否
     */
    @ApiModelProperty("冗余是否左侧比例型")
    private String isLeft;

    /**
     * 增降幅小数点规则
     */
    @ApiModelProperty("增降幅小数点规则")
    private String increasesDropDecimalPoint;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @ApiModelProperty("小数最后一位规则")
    private String decimalDigitsLastRules;

    /**
     * 进度值（数值）
     */
    @ApiModelProperty("进度值（数值）")
    private Double progressValue;

    /**
     * 上一进度值结果
     */
    @ApiModelProperty("上一进度值结果")
    private Double parentProgressValue;

    /**
     * 进度值单位
     */
    @ApiModelProperty("进度值单位")
    private String progressValueUnit;

    /**
     * 参照进度值（数值）
     */
    @ApiModelProperty("参照进度值（数值）")
    private Double countProgressValue;

    /**
     * 参照进度值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照进度值单位")
    private String countProgressValueUnit;

    /**
     * 实际值（数值）
     */
    @ApiModelProperty("实际值（数值）")
    private Double actualValue;

    /**
     * 上一实际值结果
     */
    @ApiModelProperty("上一实际值结果")
    private Double parentActualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("实际值单位")
    private String actualValueUnit;

    /**
     * 参照实际值（数值）
     */
    @ApiModelProperty("参照实际值（数值）")
    private Double countActualValue;

    /**
     * 参照实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("参照实际值单位")
    private String countActualValueUnit;

    /**
     * 预算支出金额
     */
    @ApiModelProperty("预算支出金额")
    private Double budgetDisburse;

    /**
     * 上一预算支出金额
     */
    @ApiModelProperty("上一预算支出金额")
    private String parentBudgetDisburse;

    /**
     * 累计支出资金
     */
    @ApiModelProperty("累计支出资金")
    private Double cumulativeFundsExpend;

    /**
     * 资金单位
     */
    @ApiModelProperty("资金单位")
    private String cashAccountUnit;

    @ApiModelProperty("财务科目列表")
    private List<AccountSubjectDto> accountSubjectList = new ArrayList<>();

}
